#include "common.hpp"

int main()
{
    try
    {

        // 一旦有了共享内存,挂接到自己的地址空间, 当成内存空间用即可
        // 不需要调用系统调用
        int shmid = GetShm();
        char *shmaddr = (char *)shmat(shmid, nullptr, 0);
        int fd = open(FIFO_FILE, O_WRONLY); // 等待写入方打开之后,自己才会打开文件, 向后执行
        if (fd < 0)
        {
            perror("open");
            exit(FIFO_OPEN_ERROR);
        }

        // ipc code
        while (true)
        {

            cout << "Please Enter@";
            fgets(shmaddr, 4096, stdin);
            write(fd, "c", 1);
        }

        shmdt(shmaddr);
    }
    catch (Mistake error)
    {
        std::cerr << static_cast<int>(error);
    }

    return 0;
}
